package com.ruoyi.office.asset.mapper;

import com.ruoyi.office.asset.domain.AssetStatus;
import com.ruoyi.office.asset.request.AssetStatusQueryDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 资产状态Mapper接口
 *
 * @author tqfeiyang
 * @date 2024-12-11
 */
@Mapper
public interface AssetStatusMapper
{
    /**
     * 查询资产状态列表
     *
     * @param criteria 查询条件
     * @return 资产状态集合
     */
    List<AssetStatus> selectAssetStatusList(AssetStatusQueryDto criteria);

    /**
     * 查询资产状态
     *
     * @param id 资产状态主键
     * @return 资产状态
     */
    AssetStatus selectAssetStatusById(Integer id);

    /**
     * 新增资产状态
     *
     * @param assetStatus 资产状态
     * @return 影响的行数
     */
    int insertAssetStatus(AssetStatus assetStatus);

    /**
     * 修改资产状态
     *
     * @param assetStatus 资产状态
     * @return 影响的行数
     */
    int updateAssetStatus(AssetStatus assetStatus);

    /**
     * 删除资产状态
     *
     * @param id 资产状态主键
     * @return 影响的行数
     */
    int deleteAssetStatusById(Integer id);

    /**
     * 批量删除资产状态
     *
     * @param ids 需要删除的数据主键集合
     * @return 影响的行数
     */
    int deleteAssetStatusByIds(Integer[] ids);

    /**
     * 检查名称是否已经存在
     *
     * @param title 名称
     * @param excludeId 排除的ID
     * @return 是否已经存在
     */
    boolean checkIfTitleExists(@Param("title") String title, @Param("excludeId") Integer excludeId);
}
